size <- 12. Later this will be
the number of rows of the matrix.x <- rnorm( size ).x1 by adding (on average 10
times smaller) noise to x:
x1 <- x + rnorm( size )/10.x and x1 should be
close to 1.0: check this with function cor.x2 and x3 by
adding (other) noise to x.size <- 12
x <- rnorm( size )
x1 <- x + rnorm( size )/10
cor( x, x1 )
[1] 0.9970252
x2 <- x + rnorm( size )/10
x3 <- x + rnorm( size )/10
x1, x2 and x3
column-wise into a matrix using
m <- cbind( x1, x2, x3 ).m.m.heatmap( m, Colv = NA, Rowv = NA, scale = "none" ).m <- cbind( x1, x2, x3 )
class( m )
[1] "matrix" "array"
head( m )
x1 x2 x3
[1,] 1.1644546 1.1393991 1.2728796
[2,] 0.1074862 0.3040150 0.3321504
[3,] 1.9120255 1.6932083 2.0918602
[4,] 0.4043029 0.3451883 0.3664005
[5,] 0.3770820 0.3589244 0.4741447
[6,] -0.2693512 -0.2814448 -0.4480681
heatmap( m, Colv = NA, Rowv = NA, scale = "none" ) # high is dark red, low is yellow
# x1, x2, x3 follow similar color pattern, they should be correlated
y1…y4 (but not correlated with
x), of the same length size.m from columns
x1…x3,y1…y4 in some
random order.y <- rnorm( size )
y1 <- y + rnorm( size )/10
y2 <- y + rnorm( size )/10
y3 <- y + rnorm( size )/10
y4 <- y + rnorm( size )/10
m <- cbind( y4, y3, x2, y1, x1, x3, y2 )
heatmap( m, Colv = NA, Rowv = NA, scale = "none" ) # high is dark red, low is yellow
cc <- cor( m ) to build the matrix of correlation
coefficients between columns of m.round( cc, 3 ) to show this matrix with 3 digits
precision.cc <- cor( m )
round( cc, 3 ) #
y4 y3 x2 y1 x1 x3 y2
y4 1.000 0.996 0.411 0.993 0.363 0.371 0.996
y3 0.996 1.000 0.448 0.991 0.405 0.413 0.994
x2 0.411 0.448 1.000 0.456 0.992 0.991 0.416
y1 0.993 0.991 0.456 1.000 0.408 0.414 0.997
x1 0.363 0.405 0.992 0.408 1.000 0.997 0.370
x3 0.371 0.413 0.991 0.414 0.997 1.000 0.376
y2 0.996 0.994 0.416 0.997 0.370 0.376 1.000
heatmap( cc, symm = TRUE, scale = "none" )
# E.g. value for (row: x1, col: y1) is the corerlation of vectors x1, y1.
# Values of 1.0 are on the diagonal: e.g. x1 is perfectly correlated with x1.
# Correlations between x, x vectors are close to 1.0.
# Correlations between y, y vectors are close to 1.0.
# Correlations between x, y vectors are close to 0.0.
Copyright © 2023 Biomedical Data Sciences (BDS) | LUMC